import Vue from 'vue'
// Message需要单独结构导入(交互方法)
import Element from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

/**
 * 封装再次确认提示框
 * @param {string} msg 提示内容
 * @param {function} successFun 成功的回调函数
 * @param {function} errorFun 失败的回到函数
 * @param {string} type 提示的方式
 * @param {string} title 提示框的标题
 */

function showMessageBox (
  msg,
  successFun,
  errorFun,
  type = 'warning',
  title = '操作提示'
) {
  if (!msg) {
    throw new Error('请传入提示内容')
  }
  if (!successFun) {
    throw new Error('请传入 success function')
  }
  this.$confirm(msg, title, {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: type
  })
    .then(() => {
      successFun()
    })
    .catch(() => {
      this.$message('取消了操作')
      if (errorFun) {
        errorFun()
      }
    })
}

// 将elementui的提示挂载在vue原型上
// Vue.prototype.$message = Message
// Vue.prototype.$confirm = MessageBox
Vue.prototype.$showMessageBox = showMessageBox
// use之后,element的所有组件及方法都可以直接使用,方法可以使用this直接调用
Vue.use(Element)
